// Copyright 2011 Jefferson Willian
// willmont7@gmail.com

#include <cstdio>

#define MAX 10000

/* Retorna o indice do jogador que deve sair */
int verifyOut(bool up[], int in[], int init, int n) {
  int cnt = 0;
  bool mask[24];

  /* Verifica todos que nao estao em cima */
  for (int i = 1;i < 24;i++)
    if(!(mask[i] = !up[i]))
      cnt++;

  /* Verifica de todos que estao em cima e que ainda
   * tem de continuar algum momento no carro */
  for (int i = init;i < n;i++)
    if (up[in[i]] && !mask[in[i]]) {
      mask[in[i]] = true;
      /* Se todos vao ter que voltar para o carro algum momento
       * entao retorna o ultimo processo */
      if(--cnt == 0)
        return in[i];
    }

  /* Retorna alguem que nao voltara mais ao carro */
  for (int i = 1;i < 24;i++)
    if (!mask[i])
      return i;
}

int main() {
  int n, m;
  bool up[24];
  int in[MAX];
  int count;
  int i, j;
  int games = 1;

  while (scanf("%d%d", &n, &m) && (n != 0 || m != 0)) {
    for (i = 1;i < 24;i++)
      up[i] = false;

    for (i = 0;i < n;i++)
      scanf("%d", &in[i]);

    i = 0;
    j = 0;

    /* Coloca o max de pessoas no carro */
    while (i < n && j < m) {
      if (!up[in[i]])
        j++;
      up[in[i++]] = true;
    }

    count = 0;

    /* Processa o restante das pessoas */
    for (;i < n;i++) {
      if (up[in[i]])
        continue;
      /* Retira a melhor opcao */
      up[verifyOut(up, in, i+1, n)] = false;
      up[in[i]] = true;
      count++;
    }

    printf("Teste %d\n%d\n\n", games++, count);
  }

  return 0;
}
